import java.sql.SQLOutput;

public class Helloworld {
    public static void main(String[] args) {
        System.out.println(9%2);//1
        System.out.println(9%-2);//1
        System.out.println(-9%2);//-1
        System.out.println(-9%-2);//-1
        System.out.println(11.5%2);//1.5

        double d=12.5;
        int c=20;
        //c=c+d;报错
        c+=d;//32 可以 对于增量运算符会自动进行类型转换
    }

    public static void main6(String[] args) {
        System.out.println(5/2);//2
        System.out.println(5.0/2);//2.5
        System.out.println(5/0);//报错
        System.out.println(5.0/0);//Infinity
    }

    public static void main5(String[] args) {
        String str1="Hello ";
        String str2="world！";
        //+意为拼接
        String str3=str1+str2;
        System.out.println(str3);
        int a=10;
        int b=20;
        System.out.println("a+b="+(a+b));
    }

    public static void main4(String[] args) {
        int a=10;//4
        long b=100L;//8
        //b=a 可以通过编译 编译器自动类型提升
        //a=b 会报错，需要强制类型转换，a=(int)b,缺点：可能会有数据丢失
        //不相干类型的数据不能相互转换

//        所有小于4个字节的变量，都会提升为4字节
    }

    public static void main3(String[] args) {
        //字符型char  2字节
        //unicode字符集  包含了阿拉伯文，汉字，ASCII表等
        char ch='逸';
        char ch1=97;//可以给值正整数，输出ASCII对应字符a
        System.out.println(ch1);
        //包装类型是Character

        //单精度浮点型float，4字节
        float f=12.5f;//要加上f，否则会被认为是double类型的数据，报错
        System.out.println(f);

        //双精度浮点型double  8个字节（在任何系统都是）
        //在内存中存储与整形不同，也遵循IEEE754标准，所以浮点数是近似值，不是精确值
        double num=1.1;
        System.out.println(num*num);//输出1.2100000000000002
        //包装类型是Double

        //布尔类型 没有明确的大小，不能和其他类型的值相互转换，不存在1真0假
        boolean flg=true;
        System.out.println(flg);
        //包装类型是Boolean
    }

    public static void main2(String[] args) {
        //整形
        //int类型不管在多少位的机器上都是4字节
        //Integer是包装类，简单理解为int类型的plus版本
        System.out.println(Integer.MAX_VALUE);//输出int最大值2147483647
        System.out.println(Integer.MIN_VALUE);//输出int最小值-2147483648

        //局部变量 没有初始化会报错
        //java会检查字面值 超过会报错
        int c=2147483647;//int类型范围2^31~2^31-1
        int d=c+1;
        System.out.println(d);

        //长整形
        long x=10L;//long类型的范围2^63~2^63-1，后面加上L（不建议l），表示当前10是long类型
        //8字节 64bit
        //Long是包装类，简单理解为long类型的plus版本
        System.out.println(Long.MAX_VALUE);//输出long最大值9223372036854775807
        System.out.println(Long.MIN_VALUE);//输出long最小值-9223372036854775808

        //短整型short
        /*
        * 2个字节  -2^15~2^15-1
        *  */
        short s=10;
        System.out.println(s);
        System.out.println(Short.MAX_VALUE);//32767
        System.out.println(Short.MIN_VALUE);//-32768

        //byte  1个字节   -128~127
        byte b=100;
        System.out.println(b);
        System.out.println(Byte.MAX_VALUE);//127
        System.out.println(Byte.MIN_VALUE);//128
    }

    //快捷键main 或者首字母psvm创建main方法
    public static void main1(String[] args) {
//        System.out.println("hello world!");//快捷键sout
    }
}
/**
 * 文档注释   在方法上一行输入/**  按Enter
 * 会专门生成一个文档，说明作者，类，方法等
 * 了解即可，平时很少用
 */

//行注释  ctr+/

/*
块注释   */
/*回车
注释  ctr+shift+/
 */
//


